// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

// ============================== 导出表单头像 ============================== //

// 可监听 @upload="(name) => name" 来获取图片原始不带后缀的名称

export default {
  // —————————————————————————————— 公共覆盖 —————————————————————————————— //

  bind: { type: String, default: 'photo' }, // 绑定键名，触发 @change 事件
  tipPre: { type: String, default: '请上传' }, // 提示前缀

  // —————————————————————————————— 私有属性 —————————————————————————————— //

  img: { type: String, default: '' }, // 上传图片 (以 /common 或 http 开头)
  icon: { type: String, default: 'el-icon-upload' }, // 上传图标 (以 el-icon-* 或 iconfont 开头)
  text: { type: String, default: '' }, // 上传文字 (为 '' 则取 `上传${label}`)
  noText: { type: Boolean, default: false }, // 是否不要文字

  // —————————————————————————————— 删除属性 —————————————————————————————— //

  autoDel: { type: Boolean, default: false }, // 是否自动显示删除 (悬浮时才显示)
  delImg: { type: String, default: '' }, // 删除图片 (以 /common 或 http 开头)
  delIcon: { type: String, default: 'el-icon-close' }, // 删除图标 (以 el-icon-* 或 iconfont 开头)

  // —————————————————————————————— 图片属性 —————————————————————————————— //

  ...CORE.WEB.BASE.FIT,

  // —————————————————————————————— 上传属性 —————————————————————————————— //

  max: { type: Number, default: 10 }, // 最大兆数 (可小数)
  maxErrPrefix: { type: String, default: '大小不能超过' }, // 超过最大的错误前缀
  maxErrSuffix: { type: String, default: '兆' }, // 超过最大的错误后缀

  jpg: { type: Boolean, default: false }, // 是否限制为 jpg 格式
  png: { type: Boolean, default: false }, // 是否限制为 png 格式
  svg: { type: Boolean, default: false }, // 是否限制为 svg 格式

  accept: { type: String, default: 'image/*' }, // 接受上传的文件类型

  isPublic: { type: Boolean, default: false }, // 是否为公共空间 (为 false 则使用业务空间 service)
  folder: { type: String, required: true }, // 上传目录 (最终为 /${folder}/year/month/date/filename.xxx )

  pathTrans: { type: Function, default: (path) => CORE.image(path) }, // 路径转换方法
  noTrans: { type: Boolean, default: false }, // 是否不做路径转换

  // 示例：upload(file, folder).then((path) => null)
  upload: { type: Function, default: null }, // 上传方法 (为 null 则取 CORE.fileUpload)

  // —————————————————————————————— 原生属性 —————————————————————————————— //

  elProps: { type: Object, default: () => ({}) }, // el-upload 原生配置项

  // —————————————————————————————— 行数属性 —————————————————————————————— //

  ...CORE.WEB.BASE.ROW,
}
